package playlist

import (
	"time"
)

// PlaylistItem 表示播放列表中的一个音频项
type PlaylistItem struct {
	ID       string            `json:"id"`       // 唯一标识符
	Name     string            `json:"name"`     // 文件名
	Path     string            `json:"path"`     // 文件路径
	Format   string            `json:"format"`   // 音频格式
	Duration float64           `json:"duration"` // 时长（秒）
	Metadata map[string]string `json:"metadata"` // 元数据
	AddedAt  time.Time         `json:"addedAt"`  // 添加时间
}

// Playlist 表示一个播放列表
type Playlist struct {
	ID        string         `json:"id"`        // 播放列表ID
	Name      string         `json:"name"`      // 播放列表名称
	Items     []PlaylistItem `json:"items"`     // 列表项
	CreatedAt time.Time      `json:"createdAt"` // 创建时间
	UpdatedAt time.Time      `json:"updatedAt"` // 更新时间
}

// PlaylistIndex 播放列表索引，记录所有播放列表的元数据
type PlaylistIndex struct {
	Version           string         `json:"version"`           // 索引版本
	LastUpdated       time.Time      `json:"lastUpdated"`       // 最后更新时间
	Playlists         []PlaylistMeta `json:"playlists"`         // 播放列表元数据列表
	DefaultPlaylistID string         `json:"defaultPlaylistId"` // 默认播放列表ID
}

// PlaylistMeta 播放列表元数据，用于索引
type PlaylistMeta struct {
	ID        string    `json:"id"`        // 播放列表ID
	Name      string    `json:"name"`      // 播放列表名称
	ItemCount int       `json:"itemCount"` // 项目数量
	CreatedAt time.Time `json:"createdAt"` // 创建时间
	UpdatedAt time.Time `json:"updatedAt"` // 更新时间
}
